(0) Obligation:
Runtime Complexity TRS:
The TRS R consists of the following rules:
g(x, x) → g(a, b)
g(c, g(c, x)) → g(e, g(d, x))
g(d, g(d, x)) → g(c, g(e, x))
g(e, g(e, x)) → g(d, g(c, x))
f(g(x, y)) → g(y, g(f(f(x)), a))
Rewrite Strategy: INNERMOST
(1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)
Converted CpxTRS to CDT
(2) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
G(z0, z0) → c1(G(a, b))
G(c, g(c, z0)) → c2(G(e, g(d, z0)), G(d, z0))
G(d, g(d, z0)) → c3(G(c, g(e, z0)), G(e, z0))
G(e, g(e, z0)) → c4(G(d, g(c, z0)), G(c, z0))
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
S tuples:
G(z0, z0) → c1(G(a, b))
G(c, g(c, z0)) → c2(G(e, g(d, z0)), G(d, z0))
G(d, g(d, z0)) → c3(G(c, g(e, z0)), G(e, z0))
G(e, g(e, z0)) → c4(G(d, g(c, z0)), G(c, z0))
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
G, F
Compound Symbols:
c1, c2, c3, c4, c5
(3) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 1 trailing nodes:
G(z0, z0) → c1(G(a, b))
(4) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
G(c, g(c, z0)) → c2(G(e, g(d, z0)), G(d, z0))
G(d, g(d, z0)) → c3(G(c, g(e, z0)), G(e, z0))
G(e, g(e, z0)) → c4(G(d, g(c, z0)), G(c, z0))
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
S tuples:
G(c, g(c, z0)) → c2(G(e, g(d, z0)), G(d, z0))
G(d, g(d, z0)) → c3(G(c, g(e, z0)), G(e, z0))
G(e, g(e, z0)) → c4(G(d, g(c, z0)), G(c, z0))
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
G, F
Compound Symbols:
c2, c3, c4, c5
(5) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
G(
c,
g(
c,
z0)) →
c2(
G(
e,
g(
d,
z0)),
G(
d,
z0)) by
G(c, g(c, d)) → c2(G(e, g(a, b)), G(d, d))
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(c, g(c, x0)) → c2
(6) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
G(d, g(d, z0)) → c3(G(c, g(e, z0)), G(e, z0))
G(e, g(e, z0)) → c4(G(d, g(c, z0)), G(c, z0))
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
G(c, g(c, d)) → c2(G(e, g(a, b)), G(d, d))
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(c, g(c, x0)) → c2
S tuples:
G(d, g(d, z0)) → c3(G(c, g(e, z0)), G(e, z0))
G(e, g(e, z0)) → c4(G(d, g(c, z0)), G(c, z0))
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
G(c, g(c, d)) → c2(G(e, g(a, b)), G(d, d))
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(c, g(c, x0)) → c2
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
G, F
Compound Symbols:
c3, c4, c5, c2, c2
(7) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 2 trailing nodes:
G(c, g(c, x0)) → c2
G(c, g(c, d)) → c2(G(e, g(a, b)), G(d, d))
(8) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
G(d, g(d, z0)) → c3(G(c, g(e, z0)), G(e, z0))
G(e, g(e, z0)) → c4(G(d, g(c, z0)), G(c, z0))
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
S tuples:
G(d, g(d, z0)) → c3(G(c, g(e, z0)), G(e, z0))
G(e, g(e, z0)) → c4(G(d, g(c, z0)), G(c, z0))
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
G, F
Compound Symbols:
c3, c4, c5, c2
(9) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
G(
d,
g(
d,
z0)) →
c3(
G(
c,
g(
e,
z0)),
G(
e,
z0)) by
G(d, g(d, e)) → c3(G(c, g(a, b)), G(e, e))
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(d, g(d, x0)) → c3
(10) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
G(e, g(e, z0)) → c4(G(d, g(c, z0)), G(c, z0))
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(d, g(d, e)) → c3(G(c, g(a, b)), G(e, e))
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(d, g(d, x0)) → c3
S tuples:
G(e, g(e, z0)) → c4(G(d, g(c, z0)), G(c, z0))
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(d, g(d, e)) → c3(G(c, g(a, b)), G(e, e))
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(d, g(d, x0)) → c3
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
G, F
Compound Symbols:
c4, c5, c2, c3, c3
(11) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 2 trailing nodes:
G(d, g(d, x0)) → c3
G(d, g(d, e)) → c3(G(c, g(a, b)), G(e, e))
(12) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
G(e, g(e, z0)) → c4(G(d, g(c, z0)), G(c, z0))
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
S tuples:
G(e, g(e, z0)) → c4(G(d, g(c, z0)), G(c, z0))
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
G, F
Compound Symbols:
c4, c5, c2, c3
(13) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
G(
e,
g(
e,
z0)) →
c4(
G(
d,
g(
c,
z0)),
G(
c,
z0)) by
G(e, g(e, c)) → c4(G(d, g(a, b)), G(c, c))
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
G(e, g(e, x0)) → c4
(14) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(e, g(e, c)) → c4(G(d, g(a, b)), G(c, c))
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
G(e, g(e, x0)) → c4
S tuples:
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(e, g(e, c)) → c4(G(d, g(a, b)), G(c, c))
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
G(e, g(e, x0)) → c4
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
F, G
Compound Symbols:
c5, c2, c3, c4, c4
(15) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 2 trailing nodes:
G(e, g(e, c)) → c4(G(d, g(a, b)), G(c, c))
G(e, g(e, x0)) → c4
(16) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
S tuples:
F(g(z0, z1)) → c5(G(z1, g(f(f(z0)), a)), G(f(f(z0)), a), F(f(z0)), F(z0))
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
F, G
Compound Symbols:
c5, c2, c3, c4
(17) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
F(
g(
z0,
z1)) →
c5(
G(
z1,
g(
f(
f(
z0)),
a)),
G(
f(
f(
z0)),
a),
F(
f(
z0)),
F(
z0)) by
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
F(g(x0, x1)) → c5
(18) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
F(g(x0, x1)) → c5
S tuples:
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
F(g(x0, x1)) → c5
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
G, F
Compound Symbols:
c2, c3, c4, c5, c5
(19) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 1 trailing nodes:
F(g(x0, x1)) → c5
(20) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
S tuples:
G(c, g(c, g(d, z0))) → c2(G(e, g(c, g(e, z0))), G(d, g(d, z0)))
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
G, F
Compound Symbols:
c2, c3, c4, c5
(21) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
G(
c,
g(
c,
g(
d,
z0))) →
c2(
G(
e,
g(
c,
g(
e,
z0))),
G(
d,
g(
d,
z0))) by
G(c, g(c, g(d, e))) → c2(G(e, g(c, g(a, b))), G(d, g(d, e)))
G(c, g(c, g(d, g(e, z0)))) → c2(G(e, g(c, g(d, g(c, z0)))), G(d, g(d, g(e, z0))))
G(c, g(c, g(d, x0))) → c2
(22) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
G(c, g(c, g(d, e))) → c2(G(e, g(c, g(a, b))), G(d, g(d, e)))
G(c, g(c, g(d, g(e, z0)))) → c2(G(e, g(c, g(d, g(c, z0)))), G(d, g(d, g(e, z0))))
G(c, g(c, g(d, x0))) → c2
S tuples:
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
G(c, g(c, g(d, e))) → c2(G(e, g(c, g(a, b))), G(d, g(d, e)))
G(c, g(c, g(d, g(e, z0)))) → c2(G(e, g(c, g(d, g(c, z0)))), G(d, g(d, g(e, z0))))
G(c, g(c, g(d, x0))) → c2
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
G, F
Compound Symbols:
c3, c4, c5, c2, c2
(23) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 2 trailing nodes:
G(c, g(c, g(d, e))) → c2(G(e, g(c, g(a, b))), G(d, g(d, e)))
G(c, g(c, g(d, x0))) → c2
(24) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
G(c, g(c, g(d, g(e, z0)))) → c2(G(e, g(c, g(d, g(c, z0)))), G(d, g(d, g(e, z0))))
S tuples:
G(d, g(d, g(e, z0))) → c3(G(c, g(d, g(c, z0))), G(e, g(e, z0)))
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
G(c, g(c, g(d, g(e, z0)))) → c2(G(e, g(c, g(d, g(c, z0)))), G(d, g(d, g(e, z0))))
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
G, F
Compound Symbols:
c3, c4, c5, c2
(25) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
G(
d,
g(
d,
g(
e,
z0))) →
c3(
G(
c,
g(
d,
g(
c,
z0))),
G(
e,
g(
e,
z0))) by
G(d, g(d, g(e, c))) → c3(G(c, g(d, g(a, b))), G(e, g(e, c)))
G(d, g(d, g(e, g(c, z0)))) → c3(G(c, g(d, g(e, g(d, z0)))), G(e, g(e, g(c, z0))))
G(d, g(d, g(e, x0))) → c3
(26) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
G(c, g(c, g(d, g(e, z0)))) → c2(G(e, g(c, g(d, g(c, z0)))), G(d, g(d, g(e, z0))))
G(d, g(d, g(e, c))) → c3(G(c, g(d, g(a, b))), G(e, g(e, c)))
G(d, g(d, g(e, g(c, z0)))) → c3(G(c, g(d, g(e, g(d, z0)))), G(e, g(e, g(c, z0))))
G(d, g(d, g(e, x0))) → c3
S tuples:
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
G(c, g(c, g(d, g(e, z0)))) → c2(G(e, g(c, g(d, g(c, z0)))), G(d, g(d, g(e, z0))))
G(d, g(d, g(e, c))) → c3(G(c, g(d, g(a, b))), G(e, g(e, c)))
G(d, g(d, g(e, g(c, z0)))) → c3(G(c, g(d, g(e, g(d, z0)))), G(e, g(e, g(c, z0))))
G(d, g(d, g(e, x0))) → c3
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
G, F
Compound Symbols:
c4, c5, c2, c3, c3
(27) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 2 trailing nodes:
G(d, g(d, g(e, x0))) → c3
G(d, g(d, g(e, c))) → c3(G(c, g(d, g(a, b))), G(e, g(e, c)))
(28) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
G(c, g(c, g(d, g(e, z0)))) → c2(G(e, g(c, g(d, g(c, z0)))), G(d, g(d, g(e, z0))))
G(d, g(d, g(e, g(c, z0)))) → c3(G(c, g(d, g(e, g(d, z0)))), G(e, g(e, g(c, z0))))
S tuples:
G(e, g(e, g(c, z0))) → c4(G(d, g(e, g(d, z0))), G(c, g(c, z0)))
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
G(c, g(c, g(d, g(e, z0)))) → c2(G(e, g(c, g(d, g(c, z0)))), G(d, g(d, g(e, z0))))
G(d, g(d, g(e, g(c, z0)))) → c3(G(c, g(d, g(e, g(d, z0)))), G(e, g(e, g(c, z0))))
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
G, F
Compound Symbols:
c4, c5, c2, c3
(29) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
G(
e,
g(
e,
g(
c,
z0))) →
c4(
G(
d,
g(
e,
g(
d,
z0))),
G(
c,
g(
c,
z0))) by
G(e, g(e, g(c, d))) → c4(G(d, g(e, g(a, b))), G(c, g(c, d)))
G(e, g(e, g(c, g(d, z0)))) → c4(G(d, g(e, g(c, g(e, z0)))), G(c, g(c, g(d, z0))))
G(e, g(e, g(c, x0))) → c4
(30) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
G(c, g(c, g(d, g(e, z0)))) → c2(G(e, g(c, g(d, g(c, z0)))), G(d, g(d, g(e, z0))))
G(d, g(d, g(e, g(c, z0)))) → c3(G(c, g(d, g(e, g(d, z0)))), G(e, g(e, g(c, z0))))
G(e, g(e, g(c, d))) → c4(G(d, g(e, g(a, b))), G(c, g(c, d)))
G(e, g(e, g(c, g(d, z0)))) → c4(G(d, g(e, g(c, g(e, z0)))), G(c, g(c, g(d, z0))))
G(e, g(e, g(c, x0))) → c4
S tuples:
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
G(c, g(c, g(d, g(e, z0)))) → c2(G(e, g(c, g(d, g(c, z0)))), G(d, g(d, g(e, z0))))
G(d, g(d, g(e, g(c, z0)))) → c3(G(c, g(d, g(e, g(d, z0)))), G(e, g(e, g(c, z0))))
G(e, g(e, g(c, d))) → c4(G(d, g(e, g(a, b))), G(c, g(c, d)))
G(e, g(e, g(c, g(d, z0)))) → c4(G(d, g(e, g(c, g(e, z0)))), G(c, g(c, g(d, z0))))
G(e, g(e, g(c, x0))) → c4
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
F, G
Compound Symbols:
c5, c2, c3, c4, c4
(31) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 2 trailing nodes:
G(e, g(e, g(c, d))) → c4(G(d, g(e, g(a, b))), G(c, g(c, d)))
G(e, g(e, g(c, x0))) → c4
(32) Obligation:
Complexity Dependency Tuples Problem
Rules:
g(z0, z0) → g(a, b)
g(c, g(c, z0)) → g(e, g(d, z0))
g(d, g(d, z0)) → g(c, g(e, z0))
g(e, g(e, z0)) → g(d, g(c, z0))
f(g(z0, z1)) → g(z1, g(f(f(z0)), a))
Tuples:
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
G(c, g(c, g(d, g(e, z0)))) → c2(G(e, g(c, g(d, g(c, z0)))), G(d, g(d, g(e, z0))))
G(d, g(d, g(e, g(c, z0)))) → c3(G(c, g(d, g(e, g(d, z0)))), G(e, g(e, g(c, z0))))
G(e, g(e, g(c, g(d, z0)))) → c4(G(d, g(e, g(c, g(e, z0)))), G(c, g(c, g(d, z0))))
S tuples:
F(g(g(z0, z1), x1)) → c5(G(x1, g(f(g(z1, g(f(f(z0)), a))), a)), G(f(f(g(z0, z1))), a), F(f(g(z0, z1))), F(g(z0, z1)))
G(c, g(c, g(d, g(e, z0)))) → c2(G(e, g(c, g(d, g(c, z0)))), G(d, g(d, g(e, z0))))
G(d, g(d, g(e, g(c, z0)))) → c3(G(c, g(d, g(e, g(d, z0)))), G(e, g(e, g(c, z0))))
G(e, g(e, g(c, g(d, z0)))) → c4(G(d, g(e, g(c, g(e, z0)))), G(c, g(c, g(d, z0))))
K tuples:none
Defined Rule Symbols:
g, f
Defined Pair Symbols:
F, G
Compound Symbols:
c5, c2, c3, c4
(33) CpxTrsMatchBoundsTAProof (EQUIVALENT transformation)
A linear upper bound on the runtime complexity of the TRS R could be shown with a Match(-raise)-Bound[TAB_LEFTLINEAR,TAB_NONLEFTLINEAR] (for contructor-based start-terms) of 1.
The compatible tree automaton used to show the Match(-raise)-Boundedness (for constructor-based start-terms) is represented by:
final states : [1, 2]
transitions:
c0() → 0
e0() → 0
d0() → 0
g0(0, 0) → 1
f0(0) → 2
a1() → 3
b1() → 4
g1(3, 4) → 1
a1() → 0
b1() → 0
a1() → 5
b1() → 6
g0(5, 0) → 1
g0(0, 5) → 1
g0(6, 0) → 1
g0(0, 6) → 1
g0(5, 5) → 1
g0(5, 6) → 1
g0(6, 5) → 1
g0(6, 6) → 1
f0(5) → 2
f0(6) → 2
g1(5, 4) → 1
g1(3, 6) → 1
g1(5, 6) → 1
(34) BOUNDS(O(1), O(n^1))